import numpy as np
from typing import Any

class FunctionBase:
    def __init__(self):
        self._name: str = ''

    @property
    def name(self) -> str:
        return self._name

    def forward(self, *args, **kwargs) -> np.ndarray:
        return NotImplemented

    def backward(self, *args, **kwargs) -> np.ndarray:
        return NotImplemented

    def __call__(self, *args, **kwargs) -> Any:
        return NotImplemented